/*455 分饼干*/
/*
一群小孩和一堆饼干，每个小孩都有一个饥饿度，每个饼干都有一个大小，每个小孩只能吃最多一个饼干，且只有饼干大小大于小孩饥饿度的时候，小孩才能吃饱，求最多有多少个小孩能吃饱

输入输出样例：
- 输入两个数组，分别代表孩子的饥饿度和饼干的大小。输出最多有多少孩子可以吃饱的数量。
- input：[1,2], [1,2,3]   。 两个小孩，三个饼
  output：2  。  最多有两个小孩能吃饱

分析：
	优先考虑饥饿度最小的孩子，最容易吃饱 ，应该把大于等于这个孩子饥饿度的、且大小最小的饼干给这个孩子
	策略：给剩余孩子里最小饥饿度的孩子分配最小的能饱腹的饼干
*/
/*
vector<int>& children  小孩饥饿度数组
vector<int>& cookies  饼干大小数组
*/
int findContentChildren(vector<int> &children, vector<int> &cookies)
{
	sort(children.begin(), children.end()); //排序
	sort(cookies.begin(), cookies.end());	//
	int child = 0, cookie = 0;				// 需要匹配的孩子和饼干

	//
	while (child < children.size() && cookie < cookies.size()) //饼和小孩还有没匹配的
	{
		if (children[child] <= cookies[cookie]) //小孩的饥饿度小于或等于饼干的大小，说明该位置的饼干可以满足小孩，则查看下一个小孩
			++child;
		++cookie; //如果该饼干不能满足该小孩，查看下一个饼干
	}
	return child;
}